#ifndef M_RENDERER
#define M_RENDERER
#include"../scene/scene.h"
#include"../raytracer/PT.hpp"
#include"../raytracer/SPPM.hpp"
//to be implemented: UI
class Renderer
{
private:
	Camera *cam;
	RayTracer *ray_tracer;
	Scene* scene;
public:
	Renderer() {}
	void set_camera(Camera* camera) { cam = camera; }
	void set_scene(Scene* _scene) { scene = _scene; }
	void set_ray_tracer(RayTracer* rt) { ray_tracer = rt; ray_tracer->set_scene(scene); }
	void render(string config,string outputname);
};

void Renderer::render(string outputname, string config="")
{
	ray_tracer->set_camera(cam);
	ray_tracer->render(outputname, config);
}


#endif // !M_RENDERER
